<?php

/**
 * datos actions.
 *
 * @package    cronos-doctrine
 * @subpackage datos
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class datosActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    
  }
  
  //Tratamiento para evitar duplicados de las periodicidades
  public function executePeriodicidades(sfWebRequest $request)
  {
    
      $categoria = new Categoria();
      $this->servicios = $categoria->getCategoriaPadre()->execute();
      
      
      
      
  }
  
  //Tratamiento para evitar duplicados de las periodicidades
  public function executeAgendado(sfWebRequest $request)
  {
    
      $this->agendados = Doctrine_Query::create()
                ->from('Agendado a')
                ->orderBy('a.id ASC')->execute();
      
      
      
      
  }
  public function executeSinStatus(sfWebRequest $request)
  {
   
      /*
      $this->agendados = Doctrine_Query::create()
                ->select('llp.id,llp.usuario_id, count(llp.id) as cantidad, llp.llamada_id')
                ->from('LlamadaProgramada llp')
                ->having('cantidad = 1')
                ->addHaving('llamada_id = 6')
                ->groupBy('llp.usuario_id')
                ->execute();*/
      
      $this->agendados = Doctrine_Query::create()
                ->select('r.*,r.id as codigo')
                ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where  llss.usuario_id = r.id and llss.categoria_id = 1 GROUP BY llss.usuario_id  LIMIT 0 , 1) as llamada_programada_int')
                ->from('Usuario r')
                ->where('r.empresa_id=45')
                ->having('llamada_programada_int IS NULL')
                ->fetchArray();
      
      
      
      
      
  }
  
  
  
  //Tratamiento para evitar duplicados de las periodicidades
  public function executeMascotaAgendado(sfWebRequest $request)
  {
    
      $this->agendado = Doctrine_Query::create()
                ->select('a.id')
                ->from('Agendado a')
                ->leftJoin('a.Servicio s ON s.agendado_id = a.id')
                ->leftJoin('s.MascotaHasServicio ms ON ms.servicio_id = s.id')
                ->where('ms.servicio_id = s.id')
                ->orderBy('a.id ASC')
                
                //->execute();
                ->count();
      echo $this->agendado; exit;
      
      
  }
  
  //Tratamiento para eliminar las periodicidades q no este activos
  public function executePeriodicidadDelete(sfWebRequest $request)
  {
      
      $this->categoria = 2;
    
      $this->periodicidad = Doctrine_Query::create()
                            ->from('Usuario r')
                            ->leftJoin('r.LlamadaProgramada lls')
                            ->leftJoin('lls.Llamada ll')
                            ->where('r.depuracion=?',1)
                            ->addWhere('lls.id= (SELECT max(Llp.id)
                                                FROM LlamadaProgramada Llp
                                                WHERE Llp.usuario_id = r.id
                                                AND Llp.llamada_id <>6
                                                AND Llp.llamada_id <>7
                                                AND Llp.llamada_id <>9
                                                AND Llp.categoria_id='.$this->categoria.'
                                                group BY Llp.usuario_id 
                                                LIMIT 0 , 1 )')
                            ->addWhere('ll.llamada_status_id<>1')
                            ->orderBy('r.id DESC')
                            ->execute();
      
      
      
  }
  
}
